package com.example.job.activity;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;

import com.example.job.databinding.GptWebViewBinding;

/**
 * @author Deng
 * @describe gpt-web-view
 * @date 2023/5/14
 */
public class GptWebViewActivity extends BaseCompatActivity {

    private GptWebViewBinding binding;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = GptWebViewBinding.inflate(getLayoutInflater());
        View view = binding.getRoot();
        setContentView(view);

        //https://www.yubangong.com/#/friend
        binding.gptWebView.loadUrl("https://chat.wuguokai.cn/s/chatgpt");
        WebView webView = binding.gptWebView;
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true); // 开启 JavaScript 交互
        webSettings.setAppCacheEnabled(true); // 启用或禁用缓存
        webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); // 只要缓存可用就加载缓存, 哪怕已经过期失效 如果缓存不可用就从网络上加载数据
        webSettings.setAppCachePath(getCacheDir().getPath()); // 设置应用缓存路径

        // 缩放操作
        webSettings.setSupportZoom(false); // 支持缩放 默认为true 是下面那个的前提
        webSettings.setBuiltInZoomControls(false); // 设置内置的缩放控件 若为false 则该WebView不可缩放
        webSettings.setDisplayZoomControls(false); // 隐藏原生的缩放控件
        webSettings.setBlockNetworkImage(false); // 禁止或允许WebView从网络上加载图片
        webSettings.setLoadsImagesAutomatically(true); // 支持自动加载图片
        webSettings.setSafeBrowsingEnabled(true); // 是否开启安全模式
        webSettings.setJavaScriptCanOpenWindowsAutomatically(false); // 支持通过JS打开新窗口
        webSettings.setDomStorageEnabled(true); // 启用或禁用DOM缓存
        webSettings.setSupportMultipleWindows(false); // 设置WebView是否支持多窗口
        // 设置自适应屏幕, 两者合用
        webSettings.setUseWideViewPort(true); // 将图片调整到适合webview的大小
        webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
        webSettings.setAllowFileAccess(true); // 设置可以访问文件
        webSettings.setGeolocationEnabled(true); // 是否使用地理位置
        webView.setFitsSystemWindows(true);
        webView.setLayerType(View.LAYER_TYPE_HARDWARE,null);
    }
}